﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;
using Biblioteca.DataBase;
using Pms.Utils;

namespace SERIX
{
    /*
     * Autor      : IT-Developer1    
     * Data       : 02/04/2010 11:03:48
     * Descricao  : 
     * Alteracoes : 
     * 
     */
    public partial class ValoresOrganizacoes : Seguranca
    {
        string _idt;
        
        string _ano;
        string _mes;
        string _idtTec;
        string _idtMun;
        string _idtInd;
        string _idtProg;
        string _idtAcao;

        CriteriosPesquisa criteriosPesquisa;

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            
            SetaDadosMestre();
            InicializarCriteriosPesquisa();
            if (!RestaurarPesquisa() && !Page.IsPostBack)
            {
                SalvarPesquisa();
                Session["PagAtual"] = 1;
                Navegador1.CarregueBotoes(0);
                Pesquisar();
            }
            Navegador1.Pesquisar += new SERIX.Controles.Navegador.PesquisarDelegate(Pesquisar);
        }

        private void SetaDadosMestre()
        {
            string login = UsuAut.Login;
            _idt = Convert.ToString(Session[Page.ToString() + "_IdtMestre"]);
            if (!IsPostBack)
            {
                if (!String.IsNullOrEmpty(Request["idt"]))
                {
                    _idt = Server.UrlDecode(Criptografia.Descriptografar(Request["idt"]));
                    SplitParamsIdt();

                    Session[Page.ToString() + "_IdtMestre"] = _idt;
                }
            }
        }

        private void SplitParamsIdt()
        {
            string[] dados = _idt.Split(';');
            _ano = dados[0];
            _mes = dados[1];
            _idtTec = dados[2];
            _idtMun = dados[3];
            _idtInd = dados[4];
            _idtProg = dados[5];
            _idtAcao = dados[6];
        }

        private void InicializarCriteriosPesquisa()
        {
            criteriosPesquisa = (CriteriosPesquisa)Session[Page.ToString()];
        }

        private void SalvarPesquisa()
        {
            if (criteriosPesquisa == null)
            {
                criteriosPesquisa = new CriteriosPesquisa() { FiltroSimples = "", PaginaAtual = 1 };
                Session[Page.ToString()] = criteriosPesquisa;
            }
            else
            {
                criteriosPesquisa.FiltroSimples = "";
                criteriosPesquisa.PaginaAtual = 1;
            }
        }

        private bool RestaurarPesquisa()
        {
            if (!IsPostBack && criteriosPesquisa != null)
            {
                //txtFiltrar.Text = criteriosPesquisa.FiltroSimples;
                Pesquisar();
                return true;
            }
            return false;
        }

        protected void Todos()
        {
            //txtFiltrar.Text = "";
            string login = UsuAut.Login;
            lblFiltro.Text = "";
            string SQL = @"SELECT VO.DSC_TPO_OPCAO TIT_DESCRICAO, VO.DSC_OPCAO DESCRICAO, VO.UNIDADE, VO.VALOR_RATEIO RATEIO, O.NOM_ORG
                            FROM Serix.SRX_V_RELAT_ORGANIZACOES VO JOIN Serix.SRX_ORGANIZACOES O ON (VO.IDT_ORG = O.IDT_ORG)
                            WHERE VO.ANO = :P_ANO AND VO.MES = :P_MES AND 
                                  VO.IDT_TEC = :P_IDT_TEC AND VO.IDT_MUN = :P_IDT_MUN AND
                                  VO.IDT_IND = :P_IDT_IND AND VO.IDT_PROG = :P_IDT_PROG AND VO.IDT_ACAO = :P_IDT_ACAO
                            ORDER BY DSC_TPO_OPCAO, DSC_OPCAO, NOM_ORG";
            QueryPaginada qy = null;
            try
            {
                qy = new QueryPaginada(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, BiblioPMS.Demo), SQL, BiblioSERIX.tamPag);
                qy.AdicionarParametro("P_ANO", DbType.String, _ano);
                qy.AdicionarParametro("P_MES", DbType.String, _mes);
                qy.AdicionarParametro("P_IDT_TEC", DbType.String, _idtTec);
                qy.AdicionarParametro("P_IDT_MUN", DbType.String, _idtMun);
                qy.AdicionarParametro("P_IDT_IND", DbType.String, _idtInd);
                qy.AdicionarParametro("P_IDT_PROG", DbType.String, _idtProg);
                qy.AdicionarParametro("P_IDT_ACAO", DbType.String, _idtAcao);
                gridView.DataSource = qy.Executar(criteriosPesquisa.PaginaAtual);
                gridView.DataBind();
                Navegador1.CarregueBotoes(qy.QtdLinhas());
            }
            catch
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                    qy.FecharConexao();
            }
            finally
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                    qy.FecharConexao();
            }
        }

        protected void Pesquisar()
        {
            Todos();
        }
    }
}
